<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>openGauss Blog  | Dbeaver适配openGauss使用指导书</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">

    
    <link rel="shortcut icon" href="https://xzx666.gitee.io/lookeng/img/favicon.ico" type="image/x-icon" />
    <link rel="apple-touch-icon" href="https://xzx666.gitee.io/lookeng/img/apple-touch-icon.png" />

    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    
    <link rel="stylesheet" href="https://xzx666.gitee.io/lookeng/css/commen.css?t=1607593672000" />
    <link rel="stylesheet" href="https://xzx666.gitee.io/lookeng/css/blog.css?t=1607593672000" />
    <link rel="stylesheet" href="https://xzx666.gitee.io/lookeng/css/mobile.css?t=1607593672000" />
    <link rel="stylesheet" href="https://xzx666.gitee.io/lookeng/css/pagination.css?t=1607593672000">
    
    <script>
      var _hmt = _hmt || [];
      (function() {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?34e9f585f29581007941aa1698181871";
        var s = document.getElementsByTagName("script")[0]; 
        s.parentNode.insertBefore(hm, s);
      })();
    </script>
</head>
<body>
  <script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
  <script src='//unpkg.com/valine/dist/Valine.min.js'></script>






<div class="container">
    <div class="columns blog-detail">
        <div class="post_detail">
            <div class="is-child box">
                <div class="breadCrumb"><a href="\zh\">博客/</a></div>
                <div class="blog-detail-header">
                    <h1>Dbeaver适配openGauss使用指导书</h1>
                    <div class="blog-detail-prop">
                        <img src="https://xzx666.gitee.io/lookeng/img/icon-date.png">
                        <span class="article_right_date">2020-10-30</span>
                        <img src="https://xzx666.gitee.io/lookeng/img/icon-author.png">
                        <span class="article_right_author">justbk</span>
                        <img src="https://xzx666.gitee.io/lookeng/img/icon-view.png">
                        <span id="/zh/post/justbk/2020-10-30_dbeaver_for_opengauss/" class="leancloud_visitors" data-flag-title="Dbeaver适配openGauss使用指导书">
                            <i class="leancloud-visitors-count"></i>                     
                        </span>
                    </div>
                    <div class="blog-detail-tags">
                        <img src="https://xzx666.gitee.io/lookeng/img/icon-tag.png">
                        
                        <a href="https://xzx666.gitee.io/lookeng/zh/tags/opengauss%E7%A4%BE%E5%8C%BA%E5%BC%80%E5%8F%91%E5%85%A5%E9%97%A8">openGauss社区开发入门</a>
                        
                    </div>
                </div>
                <div class="content blog-content">
                    

<h2 id="一-dbeaver简介">一、Dbeaver简介</h2>

<p>Dbeaver是一个跨平台的数据库开发者工具，包括SQL编程，数据库管理和分析。它支持任意适配JDBC驱动的数据库系统。同时该工具也支持一些非JDBC的数据源，如MongoDB, Cassandra, Redis, DynamoDB等。
⦁   该工具提供了许多强大的特性，诸如元数据编辑器、SQL编辑器、富文本数据编辑器、ERD、数据导入/导出/迁移，SQL执行计划等
⦁   该工具基于eclipse平台开发
⦁   适配的数据库有MySQL/MariaDB, PostgreSQL, Greenplum, Oracle, DB2 LUW, Exasol, SQL Server, Sybase/SAP ASE, SQLite, Firebird, H2, HSQLDB, Derby, Teradata, Vertica, Netezza, Informix等</p>

<h2 id="二-dbeaver下载">二、Dbeaver下载</h2>

<p>Dbeaver是一款开源软件，代码托管在github上:
源代码下载:<a href="https://github.com/dbeaver/dbeaver">下载</a>.
此处可以直接下载二进制文件:<a href="https://github.com/dbeaver/dbeaver/releases">下载</a></p>

<h2 id="三-依赖包下载">三、依赖包下载</h2>

<ol>
<li>Dbeaver依赖jre 1.8及以上 (请自行下载或前往<a href="https://adoptopenjdk.net/?variant=openjdk8&amp;jvmVariant=hotspot">链接</a>)
备注:免安装版必须安装jre, windows installer版本已经自带jre</li>
</ol>

<p>2.下载openGauss JDBC驱动到本地</p>

<p>​      从opengauss.org官网获取:<a href="https://opengauss.org/zh/download.html">链接</a></p>

<h2 id="四-dbeaver配置">四、Dbeaver配置</h2>

<h3 id="1-启动dbeaver-exe-并选择菜单-数据库-驱动管理器-在弹出对话框中-选择新建">1. 启动Dbeaver.exe，并选择菜单-&gt;数据库-&gt;驱动管理器，在弹出对话框中，选择新建:</h3>

<p><img src="../img/驱动器管理.png" alt="image-20201031160917008" title="驱动器管理" /></p>

<h3 id="2-添加jdbc驱动">2. 添加JDBC驱动</h3>

<h4 id="a-填写新建驱动名称-选择jdbc驱动文件-选择jdbc-driver类-如下图">a. 填写新建驱动名称-&gt;选择JDBC驱动文件-&gt;选择JDBC Driver类，如下图：</h4>

<p><img src="../img/JDBC_Driver驱动.png" alt="image-20201031161118343" title="JDBC_Driver驱动" /></p>

<h4 id="b-填写url模板-值为-jdbc-postgresql-host-port-database-然后勾选嵌入-其他复选框不选择-然后确认-添加驱动即完成-如下图">b. 填写URL模板，值为: jdbc:postgresql://{host}:{port}/{database} ，然后勾选嵌入，其他复选框不选择，然后确认，添加驱动即完成，如下图:</h4>

<p><img src="../img/url模板.png" alt="image-20201031161200535" title="url模板" /></p>

<h2 id="五-dbeaver连接">五、Dbeaver连接</h2>

<h3 id="1-选择菜单-数据库-新建连接-在弹出的框中搜索上一步中新建的jdbc驱动名-选择后点击下一步-如下图示">1. 选择菜单-&gt;数据库-&gt;新建连接， 在弹出的框中搜索上一步中新建的JDBC驱动名,选择后点击下一步,如下图示:</h3>

<p><img src="../img/新建连接.png" alt="image-20201031161304090" title="新建连接" /></p>

<h3 id="2-在弹出框中填写opengauss-主机地址-端口-将要连接的数据库以及认证用户名和密码-点击测试链接验证是否可正确连接-如图示">2. 在弹出框中填写openGauss 主机地址、端口、将要连接的数据库以及认证用户名和密码，点击测试链接验证是否可正确连接，如图示：</h3>

<p><img src="../img/通用JDBC连接设置.png" alt="image-20201031161348486" title="通用JDBC连接设置" /></p>

<h3 id="3-测试结果ok后点击确认-并点击完成-则连接成功">3. 测试结果OK后点击确认，并点击完成，则连接成功</h3>

<p><img src="../img/测试连接成功.png" alt="image-20201031161423966" title="测试连接成功" /></p>

<h3 id="4-左边的导航栏即可见数据库已经连接成功">4. 左边的导航栏即可见数据库已经连接成功</h3>

<p><img src="../img/数据库连接成功.png" alt="image-20201031161451687" title="数据库连接成功" /></p>

<h2 id="六-dbeaver使用">六、Dbeaver使用</h2>

<p>SQL编写:选中要使用的数据库，并按下F3(或使用菜单-&gt;SQL编辑器-&gt;SQL编辑器)即可打开SQL编写器，可以在编辑器中编写SQL和执行。</p>

<p><img src="../img/SQL编辑.png" alt="image-20201031161524533" title="SQL编辑" /></p>

<p>其他功能使用和其他客户端工具相似，请自行探索。</p>

<h2 id="七-常见问题">七、常见问题</h2>

<h3 id="1-javax-xml-bind-datatypeconverter转换出错-如下图">1. Javax.xml.bind.DatatypeConverter转换出错，如下图</h3>

<p><img src="../img/converter转换出错.png" alt="image-20201031161628317" title="converter转换出错" /></p>

<p>**解决方法 *<em>: 本地安装的java版本无javax.xml.bind</em>.jar这个包， 可以在添加JDBC驱动jar包时额外增加此包:<a href="https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api/2.2.2">链接</a>。</p>

<p>也可以使用maven下载:</p>

<p><code>&lt;!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api --&gt;
&lt;dependency&gt;
    &lt;groupId&gt;javax.xml.bind&lt;/groupId&gt;
    &lt;artifactId&gt;jaxb-api&lt;/artifactId&gt;
    &lt;version&gt;2.2.2&lt;/version&gt;
&lt;/dependency&gt;</code></p>

<h3 id="2-提示no-suitable-driver-found-for-jdbc-postgresql-xxx">2. 提示No suitable driver found for jdbc:postgresql://xxx</h3>

<p><img src="../img/NoSuiteDriver.png" alt="image-20201031164019085" title="NoSuiteDriver" /></p>

<p><strong>解决方法</strong>:在添加JDBC驱动时不要勾选 ‘Use legacy JDBC instantiation’:</p>

<p><img src="../img/不要勾选legacy_jdbc.png" alt="image-20201031164050597" title="不要勾选legacy_jdbc" /></p>

                </div>
            </div>
            <div class="box" style="margin-top:15px;">
                <div style="font-size:14px;color:gray"><strong>【免责声明】</strong>本文仅代表作者本人观点，与本网站无关。本网站对文中陈述、观点判断保持中立，不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文仅供读者参考，由此产生的所有法律责任均由读者本人承担。</div>
            </div>
            <div class="post-comment">
                
                  
  <link rel="stylesheet" href="https://xzx666.gitee.io/lookeng/css/custom.css" />
  <div id="vcomments" lang="zh-cn" mess="说点什么吧..."></div>

  <script type="text/javascript">
    const placeholder = document.getElementById("vcomments").getAttribute("mess"),
          lang = document.getElementById("vcomments").getAttribute("lang");
    const  langs = lang == "zh-cn" ? "zh-cn" : "en";
    new Valine({
        el: '#vcomments' ,
        appId: '6wfgavgIRqmpC3hjHqQVtFWF-gzGzoHsz',
        appKey: 'QRqrBDBB0p0YhrGe9IJ169ip',
        avatar:'mm', 
        placeholder: placeholder,
        visitor: true,
		    meta: ['nick','mail','link'],
        lang: langs
    });
  </script>
            </div>
        </div>
    </div>
</div>
<script>
    $(function (){
        var query = new AV.Query('Counter');
        query.equalTo('url', decodeURIComponent('\/zh\/post\/justbk\/2020-10-30_dbeaver_for_opengauss\/'));
        query.find().then(function (data) {
            if(data.length && (data[0].attributes.author === 'openGauss')){
                var counter = AV.Object.createWithoutData('Counter', data[0].id);
                counter.set('author', 'justbk');
                counter.save();
            }
        })
    })
</script>







<input id="iframeUrl" type="text" style="display: none;" value=https://xzx666.gitee.io/>




<script defer src="https://xzx666.gitee.io/lookengjs/all.js"></script>
<script src="https://xzx666.gitee.io/lookengjs/flexible.js"></script>
<script>
  const hash = window.location.search,
        pageurl = window.location.href;
  var langss = document.querySelector("html").lang === "zh-cn" ? "zh" : "en";
  console.log("hash:",hash,"pageurl:",pageurl,"ttr",pageurl.split(langss + "/")[1])

  if(!document.getElementById("vcomments")) {
    new Valine({
        appId: '6wfgavgIRqmpC3hjHqQVtFWF-gzGzoHsz',
        appKey: 'QRqrBDBB0p0YhrGe9IJ169ip',
        avatar:'mm',
        visitor: true,
		    meta: ['nick','mail','link']
    });
  }
 
  
    


    const url = document.getElementById("iframeUrl").value;

    function observe (el, options, callback) {
      var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver
      var observer = new MutationObserver(callback)
      observer.observe(el, options)
    }

    var options = {
        childList: true,
        subtree: true,
        characterData: true
      }
    observe(document.body, options, (records, instance) => {
    const height = document.body.scrollHeight;
    parent.postMessage(height,url);
    })
    if(pageurl.split(langss + "/")[1]) parent.postMessage(pageurl.split(langss + "/")[1],url);
    

    if(document.querySelector("#notFound")) parent.postMessage("我404了",url);

</script>
</body>
</html>
